home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -serious- / programming / other / tandem / teaching / 64.asm < prev    next >
Assembly Source File  |  1999-09-06  |  2KB  |  60 lines

  1. * 64.asm     TLellipse II    version 0.01    8.6.99
  2.  
  3.  
  4.  include 'Front.i'
  5.  
  6.  
  7. strings: dc.b 0
  8. st_1: dc.b 'TLEllipse demo',0 ;1
  9.  dc.b 'Error: out of chip memory',0 ;2
  10.  dc.b 'I''m an ellipse!!',0 ;3
  11.  dc.b 'This is version II of TLEllipse (Version I was Teaching/58.asm)',0 ;4
  12.  dc.b 'Version I drew to a rastport, whereas Version II draws direct',0 ;5
  13.  dc.b 'to a window. As this version draws, try resizing the window',0 ;6
  14.  dc.b 'to see it stop and retry until such times as you stop resizing',0
  15.  dc.b 'the window. Then, inspect the program to see how this works -',0 ;8
  16.  dc.b 'TLellipse fails (returns EQ) if the window is resized before it',0 ;9
  17.  dc.b 'finishes. (\9 of TLellipse is null, so uses the popped window)',0
  18.  
  19.  ds.w 0
  20.  
  21.  
  22. * test TLellipse
  23. Program:
  24.  TLwindow #-1              ;set up
  25.  TLreqinfo #4,#7           ;tell user what is happening
  26.  TLwindow #0,#0,#0,#320,#100,#640,#200,#0,#st_1 ;open window 0
  27.  bne.s Pr_cont             ;go if ok
  28.  TLbad #2                  ;report if can't open window
  29.  rts
  30.  
  31. Pr_cont:
  32.  TLreqcls                  ;n.b. this includes a call to TLWupdate.
  33.  move.l xxp_AcWind(a4),a5  ;a5 = window's xxp_wsuw
  34.  move.l #320,d0
  35.  moveq #100,d1             ;centre 320,100
  36.  move.l d0,d2
  37.  move.l d1,d3              ;radii 320,100
  38.  moveq #0,d4               ;trim at current limit of window display area
  39.  moveq #0,d5
  40.  moveq #0,d6
  41.  moveq #0,d7
  42.  move.w xxp_PWidth(a5),d6
  43.  subq.w #1,d6
  44.  move.w xxp_PHeight(a5),d7
  45.  subq.w #1,d7
  46.  
  47.  move.b #2,xxp_FrontPen(a5)
  48.  TLellipse #320,#100,#320,#100,d4,d5,d6,d7,,solid ;draw ellipse
  49.  
  50.  move.w #$0100,xxp_FrontPen(a5)
  51.  TLstring #3,#260,#85      ;write message
  52.  
  53. Pr_wait:
  54.  TLwcheck                  ;re-draw if window resized
  55.  bne Pr_cont
  56.  TLwslof
  57.  
  58.  TLkeyboard                ;wait for response & quit
  59.  rts
  60.